package com.cn.wanxi.util;

import com.cn.wanxi.dao.CompanyDao;
import com.cn.wanxi.model.AbstractModel;

import java.io.File;
import java.io.IOException;

public class MyFile {
    public static void main(String[] args) {
//        只有类才能进行new实例化
//        AbstractModel abstractModel=new AbstractModel() {
//        };
//        抽象类，接口不能进行实例化，如果要new它，必须实现这个它里面的所有抽象方法
//       因为所有的方法正常情况下应该在类里面，但是这里没有，匿名内部类
//        CompanyDao companyDao=new CompanyDao("");//默认有一个无参数的构造方法
//        如果构造方法有参数，则默认无参构造方法失效
//        File 属性和方法抽象出来？
        String path = "";
        File file = new File(path);
//        System.out.println(file.exists());
        if (file.exists()) {

        } else {
            path = "E:\\wanxi\\step-3\\canyin03-0823\\web\\";
        }
        System.out.println(file.isFile());
        File fileDeretory = null;
        if (file.isFile()) {
            System.out.println("当前路径是文件，不能创建文件夹");
        } else {
            String deretory = "/note\\";
            fileDeretory = new File(path, deretory);
            boolean mkdir = fileDeretory.mkdirs();
            System.out.println(mkdir);
        }
        String fileName = "company.txt";
        File file1 = new File(fileDeretory, fileName);
        try {
            boolean newFile = file1.createNewFile();
            System.out.println(newFile);

        } catch (IOException e) {
            e.printStackTrace();
        }
//        file1.delete();
//        fileDeretory.delete();
//        上传当前路径，不知道当前路径里面是否还有文件或者文件夹
//需要得到当前路径下面的所有文件或者文件夹
//        String[] list = fileDeretory.list();
//        for (int i = 0; i < list.length; i++) {
//            System.out.println(list[i]);
//            File deleteFile = new File(fileDeretory, list[i]);
//            deleteFile.delete();
////            判断当前路径是否为文件夹
////            if(deleteFile.isDirectory()){
////                String [] list1=deleteFile.list();
////                for (int j = 0; j < list1.length; j++) {
////                    File deleteFile1 = new File(deleteFile, list1[j]);
////                    deleteFile1.delete();
////
////                }
////            }
//        }
//        fileDeretory.delete();
        delete(fileDeretory);
    }

    /**
     * 上传文件
     * 递归  在面试当中会问道？
     *
     * @param path 文件路径
     */
    private static void delete(File path) {
        String[] list = path.list();//遍历当前路径下的文件和文件夹
        for (int i = 0; i < list.length; i++) {
            System.out.println(list[i]);
            File deleteFile = new File(path, list[i]);//得到当前文件夹里面的每一个文件路径
            if (deleteFile.isDirectory()) {//判断是否文文件夹：如果是，则继续查找当前文件夹里面的文件
                delete(deleteFile);
            } else {
                deleteFile.delete();//如果不是，则直接上传当前文件
            }
//            判断当前路径是否为文件夹
//            if(deleteFile.isDirectory()){
//                String [] list1=deleteFile.list();
//                for (int j = 0; j < list1.length; j++) {
//                    File deleteFile1 = new File(deleteFile, list1[j]);
//                    deleteFile1.delete();
//
//                }
//            }
        }
        path.delete();//上传当前路径
    }
}
